The Interactive Data Reduction and Analysis Facility (IRAF) data reduction and analysis system has been around since 1981. Today it is a mature system with hundreds of applications, and is supported on all the major platforms. Many institutions, projects, and individuals around the US and around the world have developed software for IRAF. Some of these packages are comparable in size to the IRAF core system itself. IRAF is both a data analysis system, and a programming environment. As a data analysis system it can be easily installed by a user at a remote site and immediately used to view and process data. As a programming environment IRAF contains a wealth of high and low level facilities for developing new applications for interactive and automated processing of astronomical or other data. As important as the applications programs and user interfaces are to the scientist using IRAF, the heart of the IRAF system is the programming environment. The programming environment determines to a large extent the types of applications which can be built within IRAF, what they will look like, and how they will interact with one another and with the user. While applications can be easily added to or removed from a software system, the programming environment must remain fairly stable, with carefully planned evolution and growth, over the lifetime of a system. The IRAF programming environment is the framework on which the rest of the IRAF system is built. The IRAF programming environment as it exists in 1992, and the work currently underway to enhance the environment are discussed. The structure of the programming environment as a class hierarchy is discussed, with emphasis on the work being done on the image data structures, graphics and image display interfaces, and user interfaces. The new technologies which we feel IRAF must deal with successfully over the coming years are discussed. Finally, a preview of what IRAF might look like to the user by the end of the decade is presented.